package com.ity.teamanagement.service;

import com.ity.teamanagement.entity.inputParam.*;
import com.ity.teamanagement.result.Result;
import com.ity.teamanagement.utils.PageableDetails;
import org.springframework.data.domain.Pageable;

/**
 * @author coderFu
 * @create 2021/11/10
 */
public interface ArticleService {


    /**
     * 后台发布文章
     * @param addArticleParam
     * @return
     */
    Result addArticle(AddArticleParam addArticleParam);

    /**
     * 后台删除文章
     * @param deleteArticleParam
     * @return
     */
    Result deleteArticle(DeleteArticleParam deleteArticleParam);

    /**
     * 后台修文章内容
     * @param updateArticleParam
     * @return
     */
    Result updateArticle(UpdateArticleParam updateArticleParam);

    /**
     * 根据文章类型查询文章列表
     * @param articleSelectParam
     * @return
     */
    Result getArticleByType(ArticleSelectParam articleSelectParam);

    /**
     * 根据文章id查询文章详情
     * @param selectArticleParam
     * @return
     */
    Result getArticleDetailsById(SelectArticleParam selectArticleParam);

    PageableDetails getArticleByTypeForPages(Pageable pageable, ArticleSelectParam articleSelectParam);

    /**
     * 获取文章类型
     * @return
     */
    Result getArticleType();
}
